home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
VObjectTView.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-08-26
|
3KB
|
99 lines
#ifndef VObjectTView_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define VObjectTView_First
#include "TextView.h"
#include "TextCmd.h"
#include "CompVObject.h"
class VObjectText;
//---- VObjectTextView --------------------------------------------------------
class VObjectTextView: public TextView {
public:
MetaDef(VObjectTextView);
VObjectTextView(
EvtHandler *eh, Rectangle r, VObjectText *t,
bool wrap= TRUE,
TextViewFlags= eTextViewDefault,
Point border= gBorder,
TViewAlign m= eTViewLeft,
int id= cIdNone
);
~VObjectTextView();
//---- overriden to update VObjects
void SetOrigin(Point);
void Control(int id, int part, void *val);
Text *SetText(Text *newText, bool scroll= cRevealTop);
//---- extended for pasting VObjects
Command *PasteData(Data *data);
bool CanPaste(Data *data);
void PasteVObject(VObject *vop);
void PasteVisualMark(VisualMark *vmp);
//---- distribute input events to embedded graphic objects
Command *DispatchEvents(Point lp, Token &t, Clipper*);
VisualMark *IsInputForVisualMark(Point p);
GrCursor GetCursor(Point);
IStream& ReadFrom(IStream&);
};
//---- PasteVObjectCommand ----------------------------------------------------
class PasteVObjectCommand: public TextCommand {
protected:
VObjectTextView *vtv;
VisualMark *vmp;
VObjectText *vt;
int newStart, newEnd;
public:
MetaDef(PasteVObjectCommand);
PasteVObjectCommand(VObjectTextView*, VObject*, int cmdNo= cPASTE, char *cmdName= 0);
PasteVObjectCommand(VObjectTextView*, VisualMark*, int cmdNo= cPASTE, char *cmdName= 0);
~PasteVObjectCommand();
void DoIt();
void UndoIt();
void RedoIt();
};
//---- StretchWrapper ---------------------------------------------------------
// a VObject installed in a StretchWrapper and inserted in a
// VObjectText can be resized interactively
class StretchWrapper: public CompositeVObject {
protected:
Point interiorOffset, extentDiff, border;
VObject *interior;
public:
MetaDef(StretchWrapper);
StretchWrapper(VObject *inner, Point border, int= cIdNone);
VObject *GetInterior()
{ return interior; }
Point GetInteriorOffset()
{ return interiorOffset; }
void SetOrigin(Point at);
void SetExtent(Point e);
Metric GetMinSize();
Command *DoLeftButtonDownCommand(Point, Token, int);
Command *DoKeyCommand(int ch, Token t);
void Control(int id, int part, void *val);
void SendDown(int id, int part, void *val);
GrCursor GetCursor(Point);
OStream& PrintOn(OStream&);
IStream& ReadFrom(IStream&);
void Draw(Rectangle);
bool KbdFocus(bool in);
};
#endif